Robot manipulators are used in various industrial fields to fulfill the requirements for product assembling, welding, polishing and other tasks automatically. A robot manipulator of related art may be equipped with a tool, such as a gripper, a cutting device, a glue dispenser, a polisher or a fixture mounted to a distal end. The robot controller can use the robot manipulator's design parameters to compute the motion required to drive its distal end to a specified position and orientation. To drive a mounted tool to a specified position and orientation, additional information on the geometric relationship between the tool and the manipulator's distal end is required. For example, when a robot manipulator polishes products, the robot manipulator may be commanded to move a polishing tool across the various surfaces of a stationary workpiece; the polishing accuracy depends on an operating accuracy of a robot tool coordinate system that defines the position and orientation of the tool relative to the robot manipulator's distal end. Thus, the operating accuracy of the robot tool coordinate system becomes an important performance factor of the robot manipulator. However, the tool's manufacturing variances, mounting imprecision, or damage during collision, can cause errors in the robot tool coordinate system. Manual calibration of the tool coordinate system is time-consuming and inconvenient, and the precision of manual calibration is not guaranteed.
Similarly, if a robot manipulator performs polishing by holding a workpiece and moving the workpiece's surfaces across a stationary polishing tool, then the polishing accuracy depends on an operating accuracy of a robot coordinate system that defines the position and orientation of the held workpiece relative to the robot manipulator's distal end. In effect, the held workpiece becomes the “tool” that needs to be calibrated. This disclosure provides a means to automatically calibrate a robot coordinate system that defines the position and orientation of a workpiece held by a robot manipulator.